\documentclass[a4paper, 11pt]{article}
\usepackage[english]{babel}
%\usepackage[dutch]{babel}
\usepackage{hyperref}
\usepackage{cite}
\usepackage{graphicx}
\newcommand{\tab}{\hspace*{2em}}
\begin{document}
\title{Bouwen en Analyseren van Sociale Netwerken\\ Project: Co-author graph\\}

\author{Sandra van Bockhooven \\ 6081304 \\ \url{Sandra.vanBockhooven@student.uva.nl}\\\\
				 Wendy G\"{u}nther \\ 6052088 \\ \url{Wendy.Gunther@student.uva.nl }}
\date{\today}



\maketitle
\tableofcontents
\titlepage

\section{Inleiding}
Voor dit project was het de bedoeling om data van het internet te verzamelen en hier een graaf van te maken, gebruikmakend van een bashscript. De graaf moest vervolgens geanalyseerd worden met behulp van een programma wat grafen kan visualiseren en analyseren, genaamd gephi. 

De nodes in de graaf zijn de medewerkers van ILPS(research staff ), weergegeven met een aangepaste weergave van hun DBLP-naam. Er bevindt zich een edge tussen twee personen wanneer ze samen een publicatie geschreven hebben. De co-authors van de ILPS-medewerkers zijn te vinden op de DBLP website. 

\section{Data collection}
Het verzamelen van de data hebben we opgedeeld in meerdere stappen. De graaf maken we bovendien zelf aan in het script, we hebben geen gebruik gemaakt van saxon.
Voordat de volgende stappen worden uitgevoerd, wordt een mogelijk reeds bestaande GraphML file opgeruimd.
\begin{enumerate}
	\item Met behulp van de ILPS website de namen van research staff opslaan
	\item De search urls van DBLP aanmaken met behulp van de voorafgaand opgeslagen namen.
	\item Deze search urls uitvoeren op het internet waardoor je weer een nieuwe url krijgt. Deze worden opgeslagen als DBLP urls.
	\item Vanuit deze DBLP urls kunnen de namen van de medewerkers worden opgeslagen zoals ze bij DBLP bekend zijn.
	\item Nu kunnen de nodes worden aangemaakt die in de graphml file worden geplaatst. De nodes gebruiken de namen van DBLP.
	\item De edges aanmaken door middel van de co-authors. Merk op dat nu ook edges zijn aangemaakt voor medewerkers buiten ILPS. Deze edges worden eruit gefilterd door gebruik te maken van de opgeslagen DBLP namen. Nu zijn er nog dubbele edges, want het is een ongerichte graaf, dus deze worden er ook uitgefilterd.
	\item Nu heb je alle edges en nodes, dus is de laatste stap om de werkelijke graphml file te maken. Doe dit door een bestand te vullen met de header van graphml, de nodes, de edges en als laatste de header af sluiten.
\end{enumerate}

Nadat deze stappen zijn uitgevoerd, worden de tijdelijke bestanden verwijderd. 

Zie appendix \ref{app:Code} voor de code van ons script.

\section{Plots}
Wanneer je de GraphML file inlaadt in Gephi kun je er een aantal dingen mee doen. Je kunt bijvoorbeeld de nodes weergeven met een bepaalde grootte en kleur gebaseerd op hun degree, of bijvoorbeeld op het component waarbij ze horen.

Ten eerste willen wij de nodes analyseren op basis van hun degree. Bijvoorbeeld, welk persoon heeft met de meeste andere verschillende personen samengewerkt? Dit zegt overigens nog niet gelijk iets over het aantal publicaties wat deze persoon heeft. Diegene kan namelijk met meerdere personen slechts \'e\'en keer hebben samengewerkt, en een ander persoon kan met \'e\'en iemand heel veel hebben samengewerkt. Bovendien worden alleen samenwerkingen binnen de ILPS weergegeven, niet met mensen uit het hele DBLP. De graaf die je krijgt wanneer je de nodes groter weergeeft bij een hogere degree, en bovendien let op kleuren ziet er uit als in figuur \ref{fig:fig1}.

%figuur1
\begin{figure}
\includegraphics[scale=0.9]{overall_node_on_degree.png}
\caption{Graaf gebaseerd op de degree}
\label{fig:fig1}
\end{figure}

Je ziet bovendien dat wanneer de nodes een lage degree hebben en zeer klein zijn, dit voor de labels ook geldt.  De kleuren die we hebben gebruikt voor de nodes zijn: Rood (voor een lage degree), geel(Voor een degree op de mediaan) en groen (voor een hoge degree). Het verloopt natuurlijk geleidelijk van kleur naar kleur. Ook is te zien dat de edges een verschillende kleur hebben en bovendien een verschillende dikte. Dit is op basis van het aantal publicaties waarbij de personen hebben samengewerkt. Hoe dikker de edge, hoe meer de nodes die zijn verbonden door deze edge samen hebben gewerkt. De bijbehorende tabel met de kleur en het bijbehorende aantal publicaties is te zien in figuur \ref{fig:fig2}.

%figuur2 
\begin{figure}
\includegraphics[scale=0.8]{edgescolorbypublications.png}
\caption{Kleur met bijbehorende aantal publicaties}
\label{fig:fig2}
\end{figure}

Ook willen we kunnen zien in hoeverre de graaf bestaat uit verschillende componenten. De graaf die je krijgt wanneer je de nodes dezelfde kleur geeft wanneer ze bij een zelfde component horen ziet er uit als in figuur  \ref{fig:fig3}.

%figuur3
\begin{figure}
\includegraphics[scale=0.9]{overall_node_on_component.png}
\caption{Graaf gebaseerd op de components}
\label{fig:fig3}
\end{figure}

\section{Analyse graaf en nodes}
In figuur  \ref{fig:fig1} kun je duidelijk zien dat de persoon die met het grootste aantal verschillende personen heeft samengewerkt Maarten de Rijke is. Als we in de bijbehorende degree tabel (figuur  \ref{fig:fig4}) kijken die we hebben gekregen klopt deze conclusie ook: Maarten stijgt met zijn degree van 10 boven de rest uit.

%figuur4
\begin{figure}
\includegraphics[scale=0.9]{rank_table_degree.png}
\caption{Tabel gebaseerd op de degree}
\label{fig:fig4}
\end{figure}

Bovendien kunnen we aan de kleur van de edges zien dat hij niet alleen veel heeft samengewerkt met andere mensen, maar dat hij met deze mensen ook nog eens een groot aantal publicaties op zijn naam heeft. Ook zien we dat een aantal mensen een degree van 0 heeft. Dat betekent niet gelijk dat deze personen nooit iets gepubliceerd hebben, echter het betekent wel dat ze nooit iets gepubliceerd hebben met iemand uit ILPS als co-author. Deze personen zullen we in het vervolg dan ook buiten beschouwing laten, omdat ze op zichzelf een te klein component vormen. 

Met dit in gedachte gaan we ons bovendien richten op de analyse per component. Je ziet in de graaf namelijk duidelijk \'e\'en groot component en \'e\'en kleiner component met een knopenaantal van 4. Om deze conclusie te bewijzen kijken we naar figuur  \ref{fig:fig3} waarin we de knopen een kleur hebben gegeven per component. De bijbehorende tabel is te zien in figuur  \ref{fig:fig5}. In deze tabel zie je dat elk component een nummer heeft gekregen en dat er inderdaad twee componenten zijn wanneer we de nodes die op zichzelf staan buiten beschouwing laten. 

%figuur5
\begin{figure}
\includegraphics[scale=1]{rank_table_component.png}
\caption{Tabel gebaseerd op het component waar men bij hoort}
\label{fig:fig5}
\end{figure}



\subsection{Giant component}
We zullen nu de analyse uitvoeren per component, beginnende met het grote component, ook wel genoemd ''the giant component''. De verdeling van de degrees binnen dit giant component blijft natuurlijk hetzelfde als bij de totale graaf, immers: geen van de nodes binnen dit component had een verbinding met een node uit een ander component, anders zouden die andere node en zijn component wel onderdeel zijn geweest van de giant component. 

In figuur \ref{fig:total} hebben we de degree, eccentricity, betweenness centrality, closeness centrality en average clustering co\"{e}fficient bij elkaar in een grafiek gezet. We hebben hierbij geen rekening gehouden met de gewichten (number of publications) van de edges. We zullen nu alle eigenschappen analyseren.

%total
\begin{figure}
\includegraphics[scale=0.8]{grafieken.png}
\caption{Grafiek van alle eigenschappen}
\label{fig:total}
\end{figure}

\subsubsection{Eccentricity}
Wat ten eerste interessant is om te weten is wat de eccentricity is binnen dit connected component. Gephi kan daar heel makkelijk achter komen door middel van een ''average path length''- algoritme, waarbij de eccentricity, de betweenness-centrality en de closeness-centrality van de graaf in een tabel worden gezet. Laten we eerst eccentricity definie\"{e}ren: ''The eccentricity  of a vertex v is the greatest geodesic distance between v and any other vertex. It can be thought of as how far a node is from the node most distant from it in the graph''\cite{wiki1}. De eccentricity tabel die we hebben verkregen met Gephi is te zien in figuur  \ref{fig:fig6}. 

%figuur6
\begin{figure}
\includegraphics[scale=1]{eccentricity_giant.png}
\caption{Eccentricity binnen het giant component}
\label{fig:fig6}
\end{figure}

Maarten de Rijke heeft een eccentricity van 2, dit betekent dat hij binnen twee stappen iedereen binnen het component kan bereiken. Logisch is dan ook dat bijvoorbeeld Maria-Hendrike Peetz een maximale padlengte van 4 heeft. Namelijk: Binnen twee stappen kan zij Maarten de Rijke bereiken en van daaruit met maximaal 2 stappen weer ieder ander binnen het component.

Wat we bovendien kunnen afleiden uit deze eccentricity-tabel zijn de radius en de diameter van dit giant component. Namelijk, de radius is gelijk aan de minimale eccentricity en de diameter is gelijk aan de maximale eccentricity. De radius is dus gelijk aan 2 en de diameter is gelijk aan 4. Uit deze redelijk kleine diameter kun je wederom concluderen dat veel mensen met elkaar hebben samengewerkt in dit component.

Gephi leert ons daarnaast dat de gemiddelde padlengte gelijk is aan  1.8 voor dit component en dat er maar liefst 156 kortste paden bestaan. De center van de graaf is de set vertices met minimale eccentricity, dit is duidelijk Maarten de Rijke.

\subsubsection{Betweenness Centrality}
''Betweenness centrality is a measure of a node's centrality in a network equal to the number of shortest paths from all vertices to all others that pass through that node''\cite{wiki2}. Het is in feite een maat voor hoe belangrijk een node is(belangrijk als deze op veel kortste paden ligt). Als deze node dus verwijderd wordt, kan dit grote invloed hebben.
De formule voor de betweenness centrality luidt als volgt:
$c_{B}(v) = \sum_{s\neq v \neq t} \frac{\sigma_{st}(v)}{\sigma_{st}}$, waarbij $\sigma_{st}$ het totale aantal kortste paden is van node s naar node t en $\sigma_{st}(v)$ het aantal van die paden dat door node v gaat. De betweenness-centrality tabel die we hebben verkregen met Gephi is te zien in figuur  \ref{fig:fig7}. 

%figuur7
\begin{figure}
\includegraphics[scale=1]{betweennesscentrality_giant.png}
\caption{Betweenness centrality binnen het giant component}
\label{fig:fig7}
\end{figure}

Wederom blijkt dat Maarten de Rijke een zeer grote rol heeft binnen dit component. Zijn betweenness centrality stijgt namelijk ver boven die van de rest uit. Dat betekent dus dat Maarten de Rijke op de meeste kortste paden ligt van elke node naar elke andere node binnen de graaf. De op een na grootste betweenness centrality geldt voor Christof Monz. Dit is ook wel logisch aangezien de enige manier waarop mensen naar Simon Carter kunnen, via hem is. Hij ligt dan al op elk kortste pad van Simon Carter naar elke andere node.

\subsubsection{Closeness centrality}
Volgens de Gephi-wikipedia \cite{gephiwiki} houdt de Closeness centrality in: ''The average distance from a given node to all other nodes in the network''. Na analyse van de graaf hebben we de volgende formule kunnen vaststellen die Gephi gebruikt:
$\frac {\sum_{v \epsilon V(G)} d(u,v)}{|V(G)|-1}$. Dit houdt in, de totale afstand naar elke andere node, gedeeld door het aantal paden (Wat gelijk is aan het aantal nodes in dit component minus \'e\'en aangezien het een simpele undirected graaf is).
De closeness centrality tabel is te zien in figuur \ref{fig:fig8}.

%figuur8
\begin{figure}
\includegraphics[scale=1]{closenesscentrality_giant.png}
\caption{Closeness centrality binnen het giant component}
\label{fig:fig8}
\end{figure}

Closeness centrality is een maat voor hoe ver een node van alle andere nodes ligt. Als deze dus klein is, zijn alle andere nodes relatief dichtbij. Je kunt in de tabel zien dat Maarten de Rijke de kleinste closeness centrality heeft en dus het meest dichtbij de andere nodes ligt. Simon Carter heeft de grootste closeness centrality en ligt dus het verst van alle andere af.

\subsubsection{Clustering co\"{e}fficient}
De gemiddelde clustering co\"{e}fficient per node is te zien in figuur  \ref{fig:fig9}. De clustering co\"{e}fficient is een indicatie voor de mate waarin de buren van de node ook met elkaar verbonden zijn \cite{wiki3}. Dit is dus het aantal verbindingen dat er daadwerkelijk bestaat tussen de buren gedeeld door het aantal verbindingen wat er mogelijk is tussen die buren. Zoals je in de figuur kunt zien is de clustering co\"{e}fficient niet overal 1, wat inhoudt dat niet iedere buur met iedere andere buur verbonden is en het giant component dus ook duidelijk niet compleet is (wat we overigens ook al in de grafische weergave van de graaf konden zien). Wel is duidelijk dat veel personen een vrij hoge clustering co\"{e}fficient hebben. Dit betekent dat er veel verbindingen zijn tussen de personen, oftewel de personen uit ILPS hebben samen veel publicaties geschreven.

\begin{figure}
\includegraphics[scale=1]{clustering_giant.png}
\caption{Average clustering coefficient binnen het giant component}
\label{fig:fig9}
\end{figure}

\subsubsection{Weighted degree}
We hebben de weighted degree uitgerekend, wat te zien is in figuur \ref{fig:fig16}. Wat we eigenlijk ook al geconcludeerd hadden en wat hier ook weer te zien is, is dat Maarten de Rijke niet alleen met veel verschillende mensen heeft samengewerkt, maar ook nog eens een groot aantal keren. In deze grafiek staat links op de x-as degene met de grootste degree en rechts degene met de kleinste degree. Wat je dus ook goed kunt zien is dat Marc Bron weliswaar met meer verschillende personen heeft samengewerkt dan bijvoorbeeld Tsagkios Manos, maar dat de ''weighted degree'' van Marc wel kleiner is dan die van Tsagkios.  

%figuur5
\begin{figure}
\includegraphics[scale=0.8]{weighteddegree_giant.png}
\caption{Weighted degree van giant component}
\label{fig:fig16}
\end{figure}

\subsubsection{Speciale nodes}
Binnen de graaftheorie kunnen we spreken van ''speciale nodes''. Bijvoorbeeld, een node kan pivotal zijn voor een node X en Y, wanneer deze node op elk kortste pad tussen X en Y ligt. Ook kan een node een gatekeeper zijn, wanneer de graaf uit elkaar zou vallen als deze node wegvalt, of een local gatekeeper wanneer twee buren van de node geen verbinding met elkaar hebben. 

Zoals we net bij de betweenness centrality hebben gezien moet iedere node door Christof Monz heen om bij Simon Carter te komen. Dat betekent dat Christof Monz een gatekeeper is, en bovendien pivotel voor het paar Simon Carter met elke andere node. We zijn er ook al achter gekomen dat Maarten de Rijke duidelijk een zeer belangrijk persoon is en bovendien ook pivotal is voor meerdere paren nodes met Maarten Marx, Maria-Hendrike Peetz en Anne schuth. Wanneer Maarten de Rijke zou wegvallen zou het giant component uiteenvallen in twee components, wat de vertex cut van dit component gelijk maakt aan 1. Maarten de Rijke is dus ook een gatekeeper. 
Verder hebben we ook local gatekeepers gevonden:
\begin{itemize}
	\item Edgar Meij(geen edge tussen Manos Tsagkias en Richard Berendsen)
	\item Wouter Weerkamp (geen edge tusen Richard Berensen en Monz Christof)
	\item Monz Christof (geen edge tussen Carter Simon en alle andere)
	\item Maarten de Rijke (geen edge tussen Maarten Marx en Monz Christof)
	\item Maarten Marx (geen edge tussen Maria Peetz-Hendrike en Maarten de Rijke)
	\item Anne Schuth (geen edge tussen Maria Peetz-Hendrike en Maarten de Rijke)
	\item Marc Bron (geen edge tussen Bouke Huurnink en Manos Tsagkios)
\end{itemize}

\subsubsection{Speciale edges}
De edge die loopt van Christof Monz tot Simon Carter is een bridge. Wanneer deze wegvalt, valt het giant component uiteen in twee componenten, dus dat maakt de edge-cut van het component gelijk aan 1. Er zijn in de giant component geen local bridges. Je kunt elke edge verwijderen tussen 2 personen, maar dit vergroot de afstand voor deze personen niet tot meer dan 2. Het feit dat er maar \'{e}\'{e}n bridge is en geen local bridges geeft ook  weer aan dat er veel wordt samengewerkt tussen de personen.

\subsection{Small component}
Het kleinere component bestaat eigenlijk maar uit 4 nodes: Lynda Hardman, Frank Nack, Abdallah El Ali en Anders Bouwer. Binnen dit component heeft Frank Nack de grootste degree(voor degree zie \ref{fig:fig4}). 

In figuur \ref{fig:totalsmall} zijn alle eigenschappen bij elkaar in een grafiek gezet, die we hierna stuk voor stuk zullen behandelen.

\begin{figure}
\includegraphics[scale=0.8]{grafieken_small.png}
\caption{Eigenschappen small component}
\label{fig:totalsmall}
\end{figure}

\subsubsection{Eccentricity}
In figuur \ref{fig:fig10} is de eccentricity te zien van het kleine component. Je kunt zien dat Frank Nack de kleinste eccentricity heeft, namelijk 1, en de rest een eccentricity van 2. Dit maakt Frank Nack het centrum van het kleine component. Je kunt hier verder uit afleiden dat de radius 1 is en de diameter 2. Deze kleine diameter geeft aan dat binnen het kleine component onderling veel wordt samengewerkt. 
 
\begin{figure}
\includegraphics[scale=1]{eccentricity_small.png}
\caption{Eccentricity binnen het kleine component}
\label{fig:fig10}
\end{figure}

\subsubsection{Betweenness centrality}
Je ziet in figuur \ref{fig:fig11} dat Frank Nack de grootste betweenness centrality heeft, en dus op de meeste kortste paden tussen de andere nodes ligt. Dit maakt Frank Nack de belangrijkste persoon, als hij wordt verwijderd uit de graaf, verandert dit veel. De andere personen hebben een betweenness centrality van 0, deze zijn dus in feite niet heel belangrijk.
 
\begin{figure}
\includegraphics[scale=1]{betweennesscentrality_small.png}
\caption{Betweenness centrality binnen het kleine component}
\label{fig:fig11}
\end{figure}

\subsubsection{Closeness centrality}
Zoals eerder genoemd, als de closeness centrality klein is voor een node, zijn alle andere nodes relatief dichtbij. In figuur \ref{fig:fig12} kun je zien dat Frank Nack de kleinste closeness centrality heeft en dus het dichtst bij alle andere personen ligt. Dit is een logische analyse aangezien Frank Nack het centrum van de graaf is.

\begin{figure}
\includegraphics[scale=1]{closenesscentrality_small.png}
\caption{Closeness centrality binnen het kleine component}
\label{fig:fig12}
\end{figure}

\subsubsection{Clustering co\"{e}fficient}
De gemiddelde clustering co\"{e}fficient is te zien in figuur \ref{fig:fig13}. Een hoge clustering co\"{e}fficient van een node geeft aan dat de buren onderling met elkaar verbonden zijn. Voor twee personen is deze waarde 1, wat betekent dat al hun buren onderling met elkaar verbonden zijn. Voor Frank Nack is deze 0.3 en voor Anders Bouwer 0. Omdat dit een hele kleine graaf is, kun je hier niet heel veel uit concluderen. Je zou kunnen zeggen dat de clustering co\"{e}fficient binnen deze graaf hoog is, aangezien de helft van de nodes de waarde 1 heeft. Dit betekent dat veel mensen met elkaar samenwerken binnen dit component.
 
\begin{figure}
\includegraphics[scale=1]{clustering_small.png}
\caption{Clustering co\"{e}fficient binnen het kleine component}
\label{fig:fig13}
\end{figure}

\subsubsection{Weighted degree}
We hebben de weighted degree uitgerekend, wat te zien is in figuur \ref{fig:fig15}. Ook in deze plot zie je weer heel goed dat de degree van Abdallah El Ali weliswaar gelijk of hoger dan die van Lynda Hardman is, maar dat de ''weighted degree''  van Lynda veel groter is.

%figuur5
\begin{figure}
\includegraphics[scale=0.8]{weighteddegree_small.png}
\caption{Weighted degree van small component}
\label{fig:fig15}
\end{figure}


\subsubsection{Special nodes}
Binnen het kleine component is Frank Nack een pivotal node voor Lynda-Anders en Ali-Anders. Dat maakt hem ook gelijk een (local) gatekeeper. Wanneer Frank Nack zou wegvallen zou het component uiteenvallen in 2 componenten, wat de vertex cut dus gelijk maakt aan 1 voor dit component.

\subsubsection{Special edges}
Er is in het kleine component een bridge te vinden, namelijk tussen Nack Frank en Anders Bouwer. Dit maakt de edge-cut van dit component gelijk aan 1. Er zijn verder geen local bridges. Het feit dat er weinig bridges zijn in dit component geeft aan dat er veel wordt samengewerkt binnen dit component.

\section{Number of publications}
Wat naast onze voorgaande analyses interessant is om te weten, is hoeveel publicaties elk persoon nou eigenlijk op zijn of haar naam heeft staan. Na dit te hebben opgezocht op DBLP hebben we de de plot uit figuur \ref{fig:fig19} verkregen.
\begin{figure}
\includegraphics[scale=0.8]{nr_of_pubs.png}
\caption{Aantal publicaties per persoon}
\label{fig:fig19}
\end{figure}
Ook bij deze plot staan de namen op de x-as weer op volgorde van degree, met links degene met de hoogste degree en rechts degene met de laagste. Zoals je kunt zien heeft de degree dus geen invloed op het aantal publicaties wat deze persoon op zijn naam heeft. Mensen met minder samenwerking met personen uit ILPS kunnen alsnog meer publicaties op hun naam hebben staan, wat natuurlijk ook logisch is. Er zit dus geen verband tussen.

\section{Word Cloud}
Tot slot hebben we een word cloud van de degree van de personen binnen ILPS gemaakt (figuur \ref{fig:fig14}). Duidelijk dat Maarten de Rijke direct in het zicht springt. Wat logisch is na onze analyse.

\begin{figure}
\includegraphics[scale=0.6]{wordcloud.png}
\caption{WordCloud gebaseerd op degree}
\label{fig:fig14}
\end{figure}

\section{Problemen}
Een probleem waar we tegen aangelopen zijn is dat sommige personen meerdere namen hebben. Zoals bijvoorbeeld Anders Bouwer heeft ook de naam Anders J Bouwer. De websites van deze twee zijn wel verschillend. Waarschijnlijk is de naam van deze persoon op een gegeven moment in zijn carriere veranderd en is de oude data van deze persoon niet bij zijn nieuwe website gevoegd. Wat we in de graaf duidelijk kunnen zien is dat \'e\'en van de twee namen voor de personen voor wie het geldt een component op zichzelf is en geen verbinding heeft met een van de andere auteurs. Aangezien we de enkele componenten toch buiten beschouwing laten bij onze graaf-analyse maakt de aanwezigheid van deze dubbele namen niets uit, anders dan het aantal componenten binnen de graaf als geheel.
Een ander probleem waar we tegen aanliepen is dat we van ieder persoon het aantal publicaties wilden hebben. Echter, voor bijvoorbeeld Simon Carter geeft DBLP aan dat hij slechts een paar publicaties heeft gehad, waar ILPS aangeeft dat hij er veel meer heeft. Overigens was het best lastig om dit aantal uit de XML-file te filteren. We hebben uiteindelijk het aantal publicaties volgens DBLP genomen. We hebben dit consistent gedaan voor alle personen binnen ILPS, dus het zou toch een goed idee moeten geven van het totale aantal publicaties wat deze persoon heeft.
Waar we uiteindelijk ook nog tegenaan liepen is dat sommige mensen uit de originele ILPS-namenlijst niet voorkomen op DBLP. Dat betekent dat wanneer we zochten op deze personen op DBLP er niks uitkwam en we dus origineel minder nodes hebben dan het aantal personen in ILPS.

\section{Conclusie}
Wat we uit onze analyse kunnen concluderen is dat Maarten de Rijke in onze graaf het belangrijkst is. Dit kun je opmaken uit zijn hoge degree, lage eccentricity, hoge betweenness centrality, lage closeness centrality en het feit dat Maarten de Rijke het centrum van de graaf is. Echter, dit is alleen binnen de ILPS, als je buiten ILPS zou kijken, zou een ander persoon belangrijker kunnen zijn in het netwerk. Onze graaf zegt dus niks over het totale aantal publicaties van een persoon. 

In het kleine component is Frank Nack het belangrijkst door zijn hoge degree, lage eccentricity, hoge betweenness centrality en lage closeness centrality. Ook is hij het centrum van het kleine component.

Verder kun je concluderen dat zowel mensen binnen het grote component als mensen binnen het kleine component veel met elkaar samenwerken. Dit zie je door de hoge average clustering co\"{e}fficient binnen de componenten en het feit dat er weinig (local) bridges zijn in zowel het grote component als het kleine component.

\newpage

\appendix
\section{Code}
\label{app:Code}

\begin{verbatim}
#!/bin/sh

#Cleanup the graphml before you begin.
rm -r 'files/graph.graphml'

#Step 1: Get the names of the research staff from ILPS
curl http://ilps.science.uva.nl/people |
sed -n '/<h2>research staff<\/h2>/,/<h2>support staff<\/h2>/p'|
grep 'View user profile' |
sed 's/<[^>]*>//g'| 
sort >> files/namesILPS.txt

#Step 2: Get search urls on DBLP
while read LINE; do
echo $LINE|
sed "s%^%http://dblp.uni-trier.de/search/author?author=%" | 
sed "s/ /+/g"  >> files/searchurl.txt
done < "files/namesILPS.txt"

#Step 3: Get the real urls. Problem: Some people have two names.
while read LINE; do 
curl $LINE|
grep -o 'http://dblp.uni-trier.de/db/indices/a-tree/./[^"]*.html'
>> files/urlsDBLP.txt
done < "files/searchurl.txt"

#Step 4: Get the names of the authors as they are on DBLP.
while read LINE;do
echo $LINE|
sed 's%http://dblp.uni-trier.de/db/indices/a-tree/%%  ; s%/xc%%'|
sed 's/.html//g'>> files/namesDBLP.txt
done < "files/urlsDBLP.txt"

#Step 5: Create all nodes using the DBLP names.
while read LINE; do
echo "<node id=\"$LINE\">\n
	<data key=\"n1\">\"$LINE\"</data>\n
</node>" |
sed " ; s%[a-z]/%% ; s%[a-z]/%%" | 
sed 's/:/ /g'>> files/nodes.xml
done < "files/namesDBLP.txt"

#Step 6.1: Create all edges by putting the DBLP names in a link. These edges
#        still have names outside ILPS in it, and double edges.
while read LINE; do
curl http://dblp.uni-trier.de/rec/pers/$LINE/xc |
grep '<author' |
sed    "s%author%edge source=\"$LINE\"% ; 
	s%urlpt%target% ; 
	s%count=\"%><data key=\"e1\">%" |
sed "s%\">[ ]*[A-Z].*%</data></edge>%" >>files/wrongedges.xml
done <"files/namesDBLP.txt"

#Step 6.2: Filter out the names that are not in ILPS and rename names 
#        from b/Bouwer:Anders to Bouwer Anders

rightnames=`cat files/namesDBLP.txt | tr '\n' '|' |sed 's/^/(/; s/|$/)/'`
 
cat files/wrongedges.xml |grep -P "target=\"$rightnames\"" | 
sed " ; s%[a-z]/%% ; s%[a-z]/%%" | 
sed 's/:/ /g' >> files/wrong2edges.xml

#Step 6.3: Filter out the dubbel edges like A-B is the same as B-A.
while read LINE; do
source=`echo $LINE | grep -o 'source="[^"]*' | sed 's/source=\"//g'`
target=`echo $LINE | grep -o 'target="[^"]*' | sed 's/target=\"//g'`

if [ "$source" \< "$target" ]  
  then  
     echo $LINE  |
     sed "s/<edge/edge id= \"$source - $target\"/g" |
     sed "s/\" - \"/-/">> files/edges.xml
fi
done < "files/wrong2edges.xml"

#Step 7: Final step, make the graphml file

#Step 7.1: Fill the header of the graphml file.
echo "<graphml xmlns=\"http://graphml.graphdrawing.org/xmlns\" 
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" 
xsi:schemaLocation=\"http://graphml.graphdrawing.org/xmlns 
http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd\">
<graph id=\"Coauthors\" edgedefault=\"undirected\">
<desc>
<meta debatetitle=\"Coauthors\"/>
</desc>
<key id=\"n1\" for=\"node\" attr.name=\"name\" attr.type=\"string\"/>
<key id=\"e1\" for=\"edge\" attr.name=\"number of publications\" 
attr.type=\"int\"/>" >>files/graph.graphml

#Step 7.2: Fill the graphml file with the nodes.
cat files/nodes.xml >> files/graph.graphml

#Step 7.3: Fill the graphml file with the edges.
cat files/edges.xml >> files/graph.graphml

#Step 7.4: Ending the graphml file.
echo "</graph>\n</graphml>" >> files/graph.graphml

#remove all tempory files.
rm -r 'files/edges.xml'
rm -r 'files/nodes.xml'
rm -r 'files/wrongedges.xml'
rm -r 'files/searchurl.txt'
rm -r 'files/namesDBLP.txt'
rm -r 'files/namesILPS.txt'
rm -r 'files/wrong2edges.xml'
rm -r 'files/urlsDBLP.txt'
\end{verbatim}
\newpage
\bibliographystyle{plain}	
\begin{thebibliography}{99}
\bibitem{wiki1} http://en.wikipedia.org/wiki/Eccentricity
\bibitem{wiki2} http://en.wikipedia.org/wiki/Centrality
\bibitem{wiki3} http://en.wikipedia.org/wiki/Clustering\_coefficient
\bibitem{gephiwiki} http://wiki.gephi.org/index.php/Closeness\_Centrality
\end{thebibliography}

\end{document}